#include <QApplication>
#include <QWidget>
#include <QLabel>
#include <QDebug>
#include "stringwheelwidget.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 主窗口（假设是嵌入式设备的一个固定屏幕）
    QWidget window;
    window.resize(1920, 720);
    window.setWindowTitle("Fixed Size Demo");
    window.setStyleSheet("background-color: #2b2b2b; color: white;");

    // --- 控件 1：小时选择器 ---
    // 父容器是一个固定大小的 Widget
    QWidget *hourContainer = new QWidget(&window);
    hourContainer->setGeometry(100, 100, 100, 200); // 绝对坐标定位
    hourContainer->setStyleSheet("background-color: #404040; border-radius: 10px;");

    // 创建滚轮，它会自动填满 hourContainer (100x200)
    StringWheelWidget *hourWheel = new StringWheelWidget(hourContainer);
    QStringList hours;
    for(int i=0; i<24; ++i) hours << QString("%1").arg(i, 2, 10, QChar('0'));
    hourWheel->setItems(hours);

    // 关键设置：显示 3 个数字
    // 此时每个数字的高度 = 200 / 3 ≈ 66px
    // 字体大小 = 66 / 3 ≈ 22px (非常合适，不会过大)
    hourWheel->setVisibleItemCount(3);


    // --- 控件 2：分钟选择器 (横向) ---
    QWidget *minuteContainer = new QWidget(&window);
    minuteContainer->setGeometry(250, 150, 400, 80); // 宽400，高80
    minuteContainer->setStyleSheet("background-color: #404040; border-radius: 10px;");

    StringWheelWidget *minuteWheel = new StringWheelWidget(minuteContainer);
    QStringList minutes;
    for(int i=0; i<60; ++i) minutes << QString("%1 m").arg(i, 2, 10, QChar('0'));
    minuteWheel->setItems(minutes);
    minuteWheel->setOrientation(Qt::Horizontal);

    // 关键设置：显示 5 个数字
    // 此时每个数字的宽度 = 400 / 5 = 80px
    // 字体大小 = 80 / 3 ≈ 26px (不会切断)
    minuteWheel->setVisibleItemCount(5);


    // 显示结果
    QLabel *label = new QLabel(&window);
    label->setGeometry(100, 350, 550, 50);
    label->setAlignment(Qt::AlignCenter);
    label->setStyleSheet("font-size: 20px; color: #ffd700;");

    auto updateFunc = [=]() {
        label->setText(QString("Time: %1 : %2")
                           .arg(hourWheel->currentText())
                           .arg(minuteWheel->currentText().split(" ").first()));
    };

    QObject::connect(hourWheel, &StringWheelWidget::currentIndexChanged, updateFunc);
    QObject::connect(minuteWheel, &StringWheelWidget::currentIndexChanged, updateFunc);

    // 初始触发一次
    updateFunc();

    window.show();
    return a.exec();
}
